Since my Claude Code quota was exhausted and not renewed, I switched to Antigravity at the end of last December to continue experiencing the Vibe Coding development paradigm.
About Antigravity
Antigravity is built on Code OSS (the open-source version of VS Code), so its interface and operational logic are highly similar to VS Code. For developers accustomed to VS Code, the migration cost is extremely low; however, for users like me who primarily use Visual Studio with VS Code as a secondary tool, it might take a little time to adapt.
WARNING
As of 2026-03-12, Google AI has adjusted its subscription plan structure, and Antigravity's quota is now linked to these changes. The official announcement is as follows:
We're evolving Google AI plans to give you more control over how you build. Every subscription includes built-in AI credits, which can now be used for Antigravity, giving you a seamless path to scale.
Google AI Pro is the home for the practical builder, hobbyists, students, and developers who live in the IDE and don't necessarily rely on an agent. This plan features generous limits for Gemini Flash, with a baseline quota included to "taste test" our most advanced premium models.
Google AI Ultra serves as the daily driver for those shipping at the highest scale who need consistent, high-volume access to our most complex models.
If you're on Pro but need "extra juice" for a heavy sprint or deeper access to premium models, simply top up your AI credits to customize your plan.
Keep building. Keep shipping.
In short, the Pro plan is positioned with Gemini Flash as the primary model, while advanced models (Gemini Pro, Claude) are provided with limited trial quotas; Ultra is the plan for those who need high-frequency access to advanced models. If Pro users temporarily need more, they can purchase AI Credits separately.
Impact on actual usage: The quotas for Gemini Pro and Claude models have been significantly reduced and changed to a Weekly Quota reset. The situation is somewhat paradoxical—the Gemini CLI, as a lower-tier carrier, currently has a relatively generous Gemini Pro quota; while the Antigravity experience is excellent, the weekly quota for advanced models is very limited, noticeably weakening its cost-performance advantage.
Since this article only reflects my experience at the time, I will not be providing further updates.
Antigravity Cockpit
This is a must-have core extension for Antigravity. Once installed, it displays an overview of available quotas for each model in the bottom right corner.

TIP
I manually modified the Group names in the image; the default display seemed to be Group 1 and Group 3.
Hovering the mouse cursor over the icon displays detailed remaining quotas and reset times for each model; clicking it opens the full Dashboard. Additionally, when the quota drops below 30%, the system automatically triggers a low-battery alert.

TIP
Antigravity's quota pool is calculated separately from the web-based Gemini (Gemini 3 / Advanced). This differs from Claude (where exhausting Claude Code quota affects the web-based Chat), so you don't have to worry that heavy coding in the IDE will prevent you from using the web version.
WARNING
Although a single Quota Group contains multiple models (e.g., the Gemini series share one group; Claude and GPT-OSS share another), this does not mean that different models within the same group have the same consumption weight.
There is also an extension called Antigravity Quota that can check quotas, but the interface is relatively basic and the functionality is simpler.
TIP
In addition to the Cockpit extension, you can also check the remaining quota for each model directly on the Open Antigravity User Settings => Models page.
User Interface
Since Antigravity's AI interaction interface differs from standard VS Code, here is a brief explanation of the main functional blocks:

- Agent Window Toggle (Red box): If you accidentally close the AI chat window, you can click here to reopen it.
- Chat Input Box (Blue box): Enter commands here to ask the AI to perform operations.
- History (Orange box): After restarting Antigravity, if you want to retrieve previous conversation Context, you can restore it from here.
Permission Settings
There is a setup wizard during installation, and you can adjust settings later via Settings => Open Antigravity User Settings. It is recommended to set different permission levels based on the nature of the project.
1. Agent Behavior and Review Policy
These settings determine the autonomy of the AI when executing actions:

- Review Policy: When you make a request, the AI generates an execution plan.
Always Proceed: Always execute automatically without confirmation.Agent Decides: The Agent determines whether human intervention is needed.Request Review: Always requires the user to manually approve the plan.
- Terminal: Controls execution permissions for terminal commands (e.g., Commit, npm install, etc.).
Always Proceed: Execute directly.Request Review: Requires user approval.
2. Browser Tools Settings

- Enable Browser Tools: Whether to allow the Agent to read external websites.
- Browser Javascript Execution Policy: Whether to allow the execution of JavaScript on web pages.
Disabled: Prohibited.Request Review: Requires approval (recommended, especially for sites involving payments or external integrations).Always Proceed: Execute automatically.
3. Conversation Mode
In the input box, besides selecting a model, you can also switch modes:

- Planning: Think first, generate a plan report, and execute only after user confirmation (more robust).
- Fast: Execute tasks directly, potentially ignoring some Review Policy settings (suitable for simple tasks; I generally don't use this).
Actual Experience
Coding Feel: Ghost Text
Before diving into specific projects, let's mention the basic coding experience in Antigravity. It has built-in code completion functionality (Ghost Text) similar to GitHub Copilot.
It predicts the operations I want to perform based on context. If I make a typo, seeing its red suggested revision allows me to discover and fix it early.
Visible Thinking Process
When Antigravity processes a command, the interface first displays Thinking for..., which changes to Thought for... after the thinking is complete. Clicking to expand this block allows you to view the Agent's complete thinking path.
When using Chinese commands, the thinking process for Gemini models usually still displays in English, while Claude models display in Chinese. By observing this thinking process, I can confirm whether the Agent correctly understands my intent or discover deviations in the thinking direction in real-time.
Case 1: English Listening Practice Project (SoftwareEnglishPodcast)
The first project I used for practice was a tool for generating English listening podcasts.
If using the web version of Gemini 3, handling such tasks would be painful:
- Unstable Output Format: Unlike Claude, which can generate files in Artifacts, selecting content often loses formatting. Furthermore, the content it generates often includes other conversational text, requiring manual deletion. If the code block within the output contains other code blocks, it causes formatting truncation.
- Difficult Version Iteration: If multiple optimizations are needed, context is easily lost, and pasting code repeatedly is cumbersome.
After switching to Antigravity, it can directly operate on the file system in this project, perfectly solving the above problems. I only need to issue a command, and it reads the existing code, makes modifications, and saves the file, making the entire process much smoother.
Case 2: Technical Blog Migration (This Project)
This is my current technical blog project. Initially, I discovered that GitHub Pages could serve as a static site platform, and since I had an existing technical blog project, I wanted to test it.
Of course, transferring notes from HackMD was another story.
Automated Image Migration
Early blog images were hosted on Imgur, but since I have backups on GitHub, I considered moving them to GitHub. Later, because Imgur started blocking uploads from Taiwan IPs, migration became necessary. This task would be overwhelming if done manually, but it was very simple with Antigravity:
"Check the Imgur image links in all Markdown files in the project, download the images to the
imagesfolder (using the article filename as a subdirectory), rename the images based on context, and replace the links in the articles according to the specified format."
It generated an execution plan based on the input, and after I confirmed it was fine, it automatically completed the migration and link replacement for hundreds of images.
Painless Framework Migration
Initially, I had it convert to Jekyll format, but after discussing it with Gemini 3, I decided to switch to VitePress. Whether Jekyll or VitePress, they both require Frontmatter in the Markdown header. The most tedious part was data completion—I spent a day finding the original publication date and commit history for each article from HackMD, manually adding the change history, and standardizing the format.
Once the data was ready, the rest was simple. I had Antigravity read the organized change history and titles, and it automatically generated Frontmatter meeting the framework requirements for each article, completing the final conversion.
Batch Updating HackMD Content
Initially, I wanted to maintain both HackMD and GitHub Pages, but due to maintenance costs, I decided to maintain only GitHub Pages. However, I had already migrated images to GitHub and manually updated the content with the new links back to HackMD.
To end HackMD maintenance, I used a script to call the HackMD API to update all old articles with a migration notice. Using Antigravity made this very simple; I didn't need to worry about how to write the script or how to call the HackMD API—I just provided the logic, and it handled the rest. The process was as follows:
- Call the HackMD API to get a list of all article IDs and titles.
- Prepare a Markdown template containing "Article migrated notice...".
- Have Antigravity write a script to match local Markdown files with HackMD article titles (it intelligently identifies them even if there are discrepancies due to special characters in filenames or directory structure).
- Automatically call the API to replace the content of each HackMD article with the migration notice containing the new link.
Just like that, I solved the "farewell" task for 87 articles at once.
TIP
I had a local copy of all articles, so I wasn't afraid of execution failure, but normally, you still need to understand how to use the HackMD API.
Browser Control Automated Testing
If you have the Antigravity Browser Control extension installed in Chrome, Antigravity can directly control your browser for End-to-End testing. Of course, its testing involves reading the DOM with JavaScript, so for some style issues, such as discrepancies in different page widths, it might claim it has taken a screenshot and believes it's fine, while the issue remains unresolved.
Claude models sometimes proactively use this feature; I haven't seen Gemini use it proactively yet, but it can be requested with explicit commands.
When using this feature, it calls the Gemini Flash model to write automation scripts, so you will see two models consuming quota simultaneously. Based on my experience, Gemini Flash usually consumes more quota than the main model during this process.
If the Policy is set to Request Review, a confirmation window will pop up before each browser operation (as shown below).

TIP
Because my site is a static site and doesn't involve any external integration, I set it to Always Proceed; if it involves backend data writing or payments, Request Review is still recommended.
Agent Memory Settings
In the official documentation, I discovered that you can provide background information to the Agent by creating a GEMINI.md file.
This concept is very similar to using the CLAUDE.md file in Claude Code, which the Agent is forced to reference when planning tasks.
TIP
Although the link is for Gemini Code Assist, it also works for Antigravity. If you want to test it, try writing "Rule: Always add 'Pika Pika' at the end of your response." in ~/.gemini/GEMINI.md. Close all open windows, click on another file (if Antigravity is open, it might read the currently open file and the file focused in the working directory), and enter "Hello" in a blank context to see if Antigravity adds "Pika Pika".
Scope and Inheritance of GEMINI.md
You can create GEMINI.md files in different locations to control different scopes:
| Scope | Location |
|---|---|
| All Projects | ~/.gemini/GEMINI.md |
| Specific Project | Working directory or any parent directory, up to the project root (identified by the .git folder) or home directory |
| Specific Component, Module, or Sub-section | Subdirectory of the working directory |
The Agent's memory system loads content files from multiple locations and follows these inheritance rules:
- More specific files take precedence: Content from a
GEMINI.mdin a specific component or module will overwrite or supplement content from more general files (like the global~/.gemini/GEMINI.md). - Load from near to far: The Agent starts from the current working directory and searches upward layer by layer to load all
GEMINI.mdfiles until it reaches the project root or home directory.
Practical Application: Locking Commit Conventions
My most common use case is to lock Commit conventions to ensure the Commit Message written by the Agent is what I want.
Pitfalls and Issues Encountered
Although Vibe Coding allows me to complete projects without understanding the current frontend ecosystem (Vite/Vue/Vitepress, etc.), there are still some pitfalls to watch out for:
1. Snapshot Mechanism Issues
Antigravity takes snapshots of files. If you manually modify files with Git while it is working (or if its previous commits didn't update the snapshot), it might overwrite new changes with old content, leading to chaotic Git history or file content regression.
2. Encoding and Script Preferences
- Gemini models: Prefer writing Python (
.py) scripts for batch file processing. - Claude models: Prefer using PowerShell (
.ps1) scripts.
When I was adjusting project names, the PowerShell script written by Claude encountered errors while handling file encoding, turning all Chinese content into garbled text. Worse, it used the broken encoding when reading files and thought "everything is fine." I would have noticed if I had checked the Git Diff in real-time, but because I was testing, I didn't intervene much, and 5 hours of quota were burned.
I later encountered multiple instances of encoding corruption, so when asking it to process files, I must specifically instruct it to use encoding-safe methods.
3. Residual Files
Because both Gemini and Claude models use scripts to execute tasks, or output content to txt files first, these files remain in the root directory. It is easy to accidentally commit them, so if your project definitely won't have these types of files, it is safer to set an ignore list in .gitignore.
4. Hallucination
Even with Enable Browser Tools enabled, it sometimes gets lazy. For example, I previously asked it to check the source of an official article, but the URLs it gave me were wrong several times. I later found out that the official source only notified users via email and didn't issue a press release. This also happens often with Gemini 3; I've given it a URL before, and it might not have crawled it at all, but instead made up content based on the URL name.
5. Limits of Style Adjustment
For those unfamiliar with frontend (like me), Vibe Coding can handle the overall architecture, but when it comes to subtle CSS/RWD adjustments (like precise positioning of floating buttons), it often falls into a loop of "fixing A breaks B." If you have sufficient frontend knowledge, intervening directly is usually much faster than communicating with AI.
6. Limitations of Batch Processing and Semantic Understanding
When processing files in batches, sometimes Antigravity doesn't actually read those files but writes scripts to process them directly. For example, if I ask it to check for mainland Chinese terms in articles and convert them to Taiwan terms, it might write a script to replace them directly. However, in that context, the term might be correct as is. Therefore, it is strongly recommended to have it read the content first before deciding how to adjust. I don't select Fast mode because I might want it to generate a description for each article based on its content; Fast mode might just use the first paragraph of the article as the description, whereas Planning would ask first.
7. Hidden Technical Debt
Although the code written by AI looks like it works, and even handles details better than I do, it is easy to produce code with technical debt if not reviewed carefully. For example: scattering the same string everywhere instead of extracting it into a shared constant.
Such code runs for now, but maintainability is extremely poor. This highlights that Vibe Coding does not mean you can "turn off your brain"; on the contrary, the user's technical foundation determines the lower bound of code quality. If you lack the corresponding knowledge to verify the AI's output, the project will quickly become a pile of unmaintainable code.
Conclusion
Compared to chatting with chatbots in the past, Antigravity is more like "directing" the AI to do things, letting the Agent directly modify files and run migrations for me.
Tasks that were "not difficult but annoying" (like my image migration and framework conversion) can be automated using it; however, if you need to significantly change program logic or perform destructive operations like Git Reset, you still need to pay attention to the changes, or better yet, handle them yourself.
Change History
- 2026-01-07 Initial document created.
- 2026-01-08 Added explanation of GEMINI.md scope, inheritance, and testing methods.
- 2026-03-13 Added information regarding Google's adjustment of Antigravity quota mechanisms on 2026-03-12.
